<div class="networkBox">
    <div class="tabs">
        <div class="tab_item"><a href="/algchains/{{scene_id}}">后退</a></div>
        <div class="tab_item">恢复出厂设置</div>
        <div class="tab_item right" onclick="saveParam()">保存</div>
        <div class="tab_item right" onclick="init()">取消</div>
    </div>
    <div class="status">
        <div class="leftBox">
            <div class="condition">
                <div id="scene_name" class="name">Loading...</div>
                <div id="scene_description" class="description">Loading...</div>
            </div>
            <div class="alg_choose">
                <div class="alg_name">Loading...</div>
                <div class="alg_choose_descrip">可选算法层:(支持拖拽)</div>
                <div class="alg_choose_list" id="myPaletteDiv"></div>
                <!--<div class="alg_plug">-->
                    <!--<img src="" alt="">-->
                    <!--<span>Label</span>-->
                <!--</div>-->
                <!--<div class="alg_plug">-->
                    <!--<img src="" alt="">-->
                    <!--<span>Label</span>-->
                <!--</div>-->
                <!--<div class="alg_plug">-->
                    <!--<img src="" alt="">-->
                    <!--<span>Label</span>-->
                <!--</div> &ndash;&gt;-->
            </div>
        </div>
        <div class="content" id="myDiagramDiv"></div>
        <div class="rightBox">
            <div class="layer_name">Loading...</div>
            <div class="layer_params"  id="property"></div>
        </div>
        <div id="myPaletteDiv1"></div>>
        <button id="SaveButton" onclick="save()">Save</button>
        <button onclick="load()">Load</button>
        Diagram Model saved in JSON format:
        <!--<textarea id="mySavedModel" style="width:100%;height:300px">-->
            <!--{ "class": "go.GraphLinksModel",-->
  <!--"linkFromPortIdProperty": "fromPort",-->
  <!--"linkToPortIdProperty": "toPort",-->
  <!--"nodeDataArray": [-->
<!--{"text":"layer1_1", "key":-1, "loc":"-310 -312.9999999999999"},-->
<!--{"text":"layer2_1", "key":-2, "loc":"-309.9999999999999 -127"},-->
<!--{"text":"layer2_2", "key":-3, "loc":"81.00000000000006 -310.00000000000006"},-->
<!--{"text":"layer1_2", "key":-4, "loc":"-310 73.00000000000003"}-->
 <!--],-->
  <!--"linkDataArray": [-->
<!--{"from":-1, "to":-2, "fromPort":"B", "toPort":"T", "points":[-310,-278,-310,-268,-310,-220,-310,-220,-310,-172,-310,-162]},-->
<!--{"from":-2, "to":-4, "fromPort":"B", "toPort":"T", "points":[-310,-92,-310,-82,-310,-27,-310,-27,-310,28,-310,38]},-->
<!--{"from":-4, "to":-3, "fromPort":"B", "toPort":"T", "points":[-310,108,-310,118,-114.5,118,-114.5,-355,81,-355,81,-345]}-->
 <!--]}-->
        <!--</textarea>-->

        <!--<textarea id="mySavedModel" style="width:100%;height:300px">-->
            <!--{"class":"go.GraphLinksModel","linkFromPortIdProperty":"fromPort","linkToPortIdProperty":"toPort","nodeDataArray":[{"text":"undefined","key":-1,"loc":"-307.9999999999999 -280"},{"text":"undefined","key":-2,"loc":"-307.9999999999999 -140"}],"linkDataArray":[{"from":-1,"to":-2,"fromPort":"B","toPort":"T","points":[-310,-98,-310,-88,-310,-20,-310,-20,-310,-22,-310,-32]}]}-->
        <!--</textarea>>-->

        <textarea id="mySavedModel" style="width:100%;height:300px">

        </textarea>>

        <textarea id="testJson">
            { "layers": [
            {
                "layerTypeId": 0,
                "id": "layer1",
                "name": "Input_1",
                "x": 10,
                "y": 10,
                "color": "#369",
                "layer_params":[
                {
                    "name": "loss",
                    "translation": "损失",
                    "description": "result of loss from model calculation?",
                    "type": "FLOAT",
                    "d_type": "FLOAT",
                    "shape":[1],
                    "allowed_values": [],
                    "default_value": 0.0,
                    "set_value": 0.4
                },
                {
                    "name": "accuracy",
                    "translation": "精度",
                    "description": "result accuracy",
                    "type": "FLOAT",
                    "d_type": "FLOAT",
                    "shape":[1],
                    "allowed_values": [],
                    "default_value": 0.0,
                    "set_value": 0.9
                }
                ]
            },
            {
                "layerTypeId": 0,
                "id": "layer2",
                "name": "Output2",
                "x": 10,
                "y": 10,
                "color": "#888",
                "layer_params":[
                {
                    "name": "accuracy",
                    "translation": "精度",
                    "description": "result accuracy",
                    "type": "FLOAT",
                    "d_type": "FLOAT",
                    "shape":[1],
                    "allowed_values": [],
                    "default_value": 0.0,
                    "set_value": 0.9
                }
                ]
            }
            ]
        }
    </textarea>
        <textarea id="testJson1">
           {"layers":[{"inbound_nodes":[],"name":"input_1","config":{"sparse":false,"name":"input_1","batch_input_shape":[null,256,256,1],"dtype":"float32"},"class_name":"InputLayer"},{"inbound_nodes":[],"name":"input_2","config":{"sparse":false,"name":"input_2","batch_input_shape":[null,256,256,1],"dtype":"float32"},"class_name":"InputLayer"},{"inbound_nodes":[[["input_1",0,0,{}]]],"name":"conv2d_2","config":{"dilation_rate":[1,1],"data_format":"channels_last","padding":"same","kernel_regularizer":null,"kernel_constraint":null,"bias_initializer":{"config":{"mode":"fan_avg","seed":null,"scale":1,"distribution":"uniform"},"class_name":"VarianceScaling"},"use_bias":true,"filters":1,"strides":[1,1],"bias_constraint":null,"trainable":true,"name":"conv2d_2","activity_regularizer":null,"kernel_initializer":{"config":{"mode":"fan_avg","seed":null,"scale":1,"distribution":"uniform"},"class_name":"VarianceScaling"},"activation":"relu","bias_regularizer":null,"kernel_size":[1,1]},"class_name":"Conv2D"}],"name":"model_2","input_layers":[["input_1",0,0]],"output_layers":[["conv2d_2",0,0]]}
        </textarea>>
        <textarea id="testJson2">
            {"Merge": {"editable_param_list": [], "layer_info": {"concat_axis": -1, "mode_type": "raw", "name": "merge_1", "mode": "concat", "output_mask": null, "output_shape": null, "arguments": {}, "output_shape_type": "raw", "output_mask_type": "raw", "dot_axes": -1}}, "Dropout": {"editable_param_list": [{"editable_param": {"d_type": "", "has_max": true, "name": "p", "type": "float", "history_values": "", "description": "probability of dropout", "has_min": true, "default_value": 0.5, "shape": "", "translation": "dropout\u5c42\u6982\u7387", "min_value": 0.0, "max_value": 1.0, "set_value": "", "allowed_values": ""}, "path": "p", "lvl": 1}], "layer_info": {"name": "dropout_2", "trainable": true, "p": 0.5}}, "Convolution2D": {"editable_param_list": [{"editable_param": {"d_type": "", "has_max": false, "name": "nb_col", "type": "int", "history_values": "", "description": "number of columns of filter", "has_min": false, "default_value": 3, "shape": "", "translation": "\u7279\u5f81\u677f\u957f\u5ea6", "min_value": "", "max_value": "", "set_value": "", "allowed_values": ""}, "path": "nb_col", "lvl": 1}, {"editable_param": {"d_type": "", "has_max": false, "name": "nb_row", "type": "int", "history_values": "", "description": "number of rows of filter", "has_min": false, "default_value": 3, "shape": "", "translation": "\u7279\u5f81\u677f\u9ad8\u5ea6", "min_value": "", "max_value": "", "set_value": "", "allowed_values": ""}, "path": "nb_row", "lvl": 1}, {"editable_param": {"d_type": "", "has_max": false, "name": "nb_filter", "type": "int", "history_values": "", "description": "number of filters", "has_min": false, "default_value": 32, "shape": "", "translation": "\u7279\u5f81\u677f\u6570\u91cf", "min_value": "", "max_value": "", "set_value": "", "allowed_values": ""}, "path": "nb_filter", "lvl": 1}, {"editable_param": {"d_type": "str", "has_max": false, "name": "activation", "type": "enums", "history_values": "", "description": "activation function", "has_min": false, "default_value": "relu", "shape": "", "translation": "\u6fc0\u52b1\u51fd\u6570", "min_value": "", "max_value": "", "set_value": "", "allowed_values": ["relu", "tanh", "sigmoid", "hard_sigmoid", "linear"]}, "path": "activation", "lvl": 1}], "layer_info": {"trainable": true, "W_constraint": null, "name": "conv1_2", "nb_filter": 32, "b_constraint": null, "dim_ordering": "th", "nb_col": 3, "b_regularizer": null, "activity_regularizer": null, "activation": "relu", "border_mode": "same", "subsample": [1, 1], "init": "glorot_uniform", "bias": true, "W_regularizer": null, "nb_row": 3}}, "Dense": {"editable_param_list": [{"editable_param": {"d_type": "", "has_max": false, "name": "output_dim", "type": "int", "history_values": "", "description": "size of the output layer", "has_min": false, "default_value": 1000, "shape": "", "translation": "\u8f93\u51fa\u5c42\u5927\u5c0f", "min_value": "", "max_value": "", "set_value": "", "allowed_values": ""}, "path": "output_dim", "lvl": 1}, {"editable_param": {"d_type": "str", "has_max": false, "name": "activation", "type": "enums", "history_values": "", "description": "activation function", "has_min": false, "default_value": "relu", "shape": "", "translation": "\u6fc0\u52b1\u51fd\u6570", "min_value": "", "max_value": "", "set_value": "", "allowed_values": ["relu", "softmax", "tanh", "sigmoid", "linear"]}, "path": "activation", "lvl": 1}], "layer_info": {"trainable": true, "W_constraint": null, "name": "dense_1", "b_constraint": null, "input_dim": 100, "output_dim": 1000, "b_regularizer": null, "activity_regularizer": null, "activation": "softmax", "init": "glorot_uniform", "bias": true, "W_regularizer": null}}, "InputLayer": {"editable_param_list": [{"editable_param": {"d_type": "int", "has_max": false, "name": "batch_input_shape", "type": "list", "history_values": "", "description": "input layer", "has_min": false, "default_value": [null, 64, 64, 1], "shape": [null, 64, 64, 1], "translation": "\u8f93\u5165\u5c42", "min_value": "", "max_value": "", "set_value": "", "allowed_values": ""}, "path": "batch_input_shape", "lvl": 1}], "layer_info": {"batch_input_shape": [null, 64, 64, 1], "input_dtype": "float32", "name": "input_14", "sparse": false}}, "Flatten": {"editable_param_list": [], "layer_info": {"name": "flatten_2", "trainable": true}}, "MaxPooling2D": {"editable_param_list": [{"editable_param": {"d_type": "int", "has_max": false, "name": "pool_size", "type": "enum", "history_values": "", "description": "size of the 2D pooling", "has_min": false, "default_value": [2, 2], "shape": [2, 2], "translation": "\u6c60\u5316\u5927\u5c0f", "min_value": "", "max_value": "", "set_value": "", "allowed_values": ""}, "path": "pool_size", "lvl": 1}, {"editable_param": {"name": "strides", "set_value": "", "type": "list", "history_values": "", "shape": [2, 2], "translation": "\u6c60\u5316\u8de8\u5ea6", "default_value": [2, 2], "description": "list of number of 2D strides", "allowed_values": "", "d_type": "int"}, "path": "strides", "lvl": 1}], "layer_info": {"trainable": true, "border_mode": "valid", "dim_ordering": "th", "strides": [2, 2], "pool_size": [2, 2], "name": "pool1"}}}
        </textarea>>
</div>
</div>
